#!/bin/bash
#简单shell脚本，可以添加参数来确定是更新还是上传
base_path=`pwd`
#屏蔽的目录
no_update_dir=('modules' 'guns' 'PiggyMetrics')

# 判断是目录是否被包含,传入目录的简名
function checkNeedUpload() {
    for i in ${no_update_dir[@]}
    do
        if [ $1 = $i ]
        then
            echo "不需要更新$1"
            return 1
        fi
    done
    return 0
}

#更新操作，传入参数时更新的目录
function updateOpt() {
    cd $1 && git pull
    
}

#上传操作，传入参数时项目更新目录
function uploadOpt() {
    cd $1 && git push
}

#遍历目录
function getdir(){
    echo $#
    for element in `ls $1`
    do
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ]
        then
            checkNeedUpload $element
            
            if [[ $? -eq 0 ]]; then
                if [[ $# -eq 2 ]]; then
                    if [[ $2 = "push" ]]; then
                        uploadOpt $dir_or_file
                    else
                        updateOpt $dir_or_file
                    fi
                else
                    updateOpt $dir_or_file
                fi
            fi
        fi
    done
}

if [[ $# -eq 1 ]]; then
    getdir $base_path $1
else
    getdir $base_path
fi
